Skip to content

[AgentX] vLLM DeepSeek-V4 B200 aggregate / vLLM DeepSeek-V4 B200 聚合配置#2224

Open
cquil11 wants to merge 3 commits into
mainfrom
agent/split-pr-2202-b200
Open

[AgentX] vLLM DeepSeek-V4 B200 aggregate / vLLM DeepSeek-V4 B200 聚合配置#2224
cquil11 wants to merge 3 commits into
mainfrom
agent/split-pr-2202-b200

Conversation

@cquil11

@cquil11 cquil11 commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Split the B200 portion of [AgentX] vLLM Deepseek-V4 B200/B300 agg #2202 into an independent PR.
  • Preserve the B200 launcher, vLLM image, KV-offload backends, sparse DSV4 attention, mega-MoE settings, CUDA graph configuration, and concurrency search space from the original PR.
  • Keep the change hardware-scoped to the B200 launcher, the B200 config block, and its appended changelog entry.
  • This replacement is merged with the latest origin/main.

Original PR: #2202
Earlier source PR referenced by #2202: #2188

Testing

  • bash -n benchmarks/single_node/agentic/dsv4_fp4_b200_vllm.sh
  • Generated the DSV4 vLLM B200 full-sweep matrix successfully.
  • python -m pytest utils/matrix_logic/ -q — 221 passed.

中文说明

  • [AgentX] vLLM Deepseek-V4 B200/B300 agg #2202 中的 B200 部分拆分为独立 PR。
  • 完整保留原 PR 的 B200 启动器、vLLM 镜像、KV 卸载后端、稀疏 DSV4 attention、mega-MoE 配置、CUDA Graph 配置和并发搜索空间。
  • 变更范围仅包含 B200 启动器、B200 配置块以及追加的变更日志条目。
  • 此替代 PR 已合并最新的 origin/main

原 PR:#2202
#2202 引用的更早来源 PR:#2188

测试

  • bash -n benchmarks/single_node/agentic/dsv4_fp4_b200_vllm.sh
  • 已成功生成 DSV4 vLLM B200 完整扫描矩阵。
  • python -m pytest utils/matrix_logic/ -q — 221 项测试通过。

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

cquil11 added a commit that referenced this pull request Jul 15, 2026
Point the split B200 changelog entry to PR #2224.

中文:将拆分后的 B200 变更日志条目链接到 PR #2224
@cquil11 cquil11 added NVIDIA full-sweep-enabled agentx AgentX benchmarks, recipes, and infrastructure labels Jul 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
set -eo pipefail

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Line 2 changed set -euo pipefail to set -eo pipefail, dropping nounset — this is the only script among all 24 in benchmarks/single_node/agentic/ that doesn't use -u. The rewrite replaced every ${VAR:-default}-guarded reference ($DCP_SIZE, $SLURM_JOB_ID, $SLURMD_NODENAME, $MODEL_PATH, $KV_OFFLOAD_BACKEND) with bare $VAR forms, which is why -u had to go; the near-identical dsv4_fp4_b300_vllm.sh shows the same optional-var pattern works fine with -u kept and ${VAR:-} guards. Recommend restoring set -euo pipefail and guarding the new bare references, to keep this script's safety net consistent with its siblings.

Extended reasoning...

The bug: Line 2 of dsv4_fp4_b200_vllm.sh was changed from set -euo pipefail to set -eo pipefail, silently dropping the nounset (-u) flag. Every other script in benchmarks/single_node/agentic/ — including the near-identical dsv4_fp4_b300_vllm.sh, plus dsv4_fp4_mi355x_vllm.sh, dsv4_fp4_b200_sglang.sh, dsv4_fp8_h200.sh, and all the kimik2.5_*/qwen3.5_*/minimaxm3_* variants — still uses set -euo pipefail. This script is now the sole outlier in the directory.\n\nWhy it happened: The diff rewrote several previously-guarded optional-variable references into bare, unguarded forms: DCP_SIZE=${DCP_SIZE:-1} became an if [ -z "$DCP_SIZE" ]; then DCP_SIZE=1; fi block (which still reads the bare $DCP_SIZE first), ${SLURM_JOB_ID:-}/${SLURMD_NODENAME:-unknown} became bare $SLURM_JOB_ID/$SLURMD_NODENAME, ${MODEL_PATH:-} became bare $MODEL_PATH, and the new case "$KV_OFFLOAD_BACKEND" in "") branch reads $KV_OFFLOAD_BACKEND unguarded (note it isn't even part of check_env_vars, so it can legitimately be unset). None of these would survive set -u if the variable is genuinely unset, so -u had to be dropped to make the rewritten code work as written.\n\nWhy this is avoidable: The sibling dsv4_fp4_b300_vllm.sh proves -u and this exact optional-variable pattern coexist fine: it keeps set -euo pipefail while using DCP_SIZE="${DCP_SIZE:-1}", declare -p SLURM_JOB_ID >/dev/null 2>&1 && [ -n "$SLURM_JOB_ID" ], and similar guards for MODEL_PATH. The new case statement here could equally have matched on "${KV_OFFLOAD_BACKEND:-}" instead of the bare variable. So dropping -u wasn't required by the case-statement refactor — it was a side effect of un-guarding several other references at the same time.\n\nImpact: With -u disabled, a future typo in a variable name anywhere in this script (e.g. RESULT_DIR misspelled as RESUT_DIR) will silently expand to an empty string and continue executing rather than aborting immediately with an "unbound variable" error — exactly the failure mode -u exists to catch. As written today the script runs correctly (all currently-referenced optional vars are handled, and required vars are separately validated by check_env_vars), so there's no concrete runtime failure right now. This is a latent robustness/consistency regression rather than an active bug.\n\nProof by example: Suppose a future edit adds echo "Writing to $RESUT_DIR" (a typo of $RESULT_DIR) somewhere in this script. With set -eo pipefail (current state), $RESUT_DIR expands to "", the echo prints "Writing to ", and the script continues — the typo goes unnoticed until output is inspected downstream. With set -euo pipefail (every sibling script's setting), the same line would immediately abort with RESUT_DIR: unbound variable, catching the bug at the point of introduction. This is precisely why the convention exists across all 23 other scripts in the directory.\n\nFix: Restore set -euo pipefail on line 2 and guard the newly-unguarded references the same way dsv4_fp4_b300_vllm.sh does: DCP_SIZE="${DCP_SIZE:-1}"/PCP_SIZE="${PCP_SIZE:-1}", [[ -n "${SLURM_JOB_ID:-}" ]] / ${SLURMD_NODENAME:-unknown}, [[ -n "${MODEL_PATH:-}" ]], and case "${KV_OFFLOAD_BACKEND:-}" in.

cquil11 and others added 3 commits July 15, 2026 19:41
Carry the B200-only launcher, config search space, and changelog scope from PR #2202.

中文:拆分 DeepSeek-V4 B200 vLLM AgentX 配方,仅保留 PR #2202 中的 B200 启动器、配置搜索空间和变更日志范围。
Point the split B200 changelog entry to PR #2224.

中文:将拆分后的 B200 变更日志条目链接到 PR #2224
@ivanium ivanium force-pushed the agent/split-pr-2202-b200 branch from 53cf054 to 455eabc Compare July 15, 2026 19:48
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@ivanium

ivanium commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

vLLM recipe PR: vllm-project/recipes#645

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agentx AgentX benchmarks, recipes, and infrastructure full-sweep-enabled NVIDIA

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants